object Form4: TForm4
  Left = 0
  Top = 0
  Caption = 'WebSocket Server DEMO (2020-05-01 '#31070#24030#28023#32435' - '#32769#21556' QQ: 910731685)'
  ClientHeight = 545
  ClientWidth = 856
  Color = clBtnFace
  Font.Charset = ANSI_CHARSET
  Font.Color = clWindowText
  Font.Height = -15
  Font.Name = #24494#36719#38597#40657
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  OnShow = FormShow
  PixelsPerInch = 96
  TextHeight = 20
  object Panel_Button: TPanel
    Left = 0
    Top = 0
    Width = 856
    Height = 49
    Align = alTop
    BevelOuter = bvNone
    ShowCaption = False
    TabOrder = 0
    ExplicitWidth = 718
    DesignSize = (
      856
      49)
    object SpeedButton1: TSpeedButton
      Left = 16
      Top = 7
      Width = 100
      Height = 32
      Action = Action_StartServer
      Flat = True
      Font.Charset = ANSI_CHARSET
      Font.Color = clBlue
      Font.Height = -15
      Font.Name = #24494#36719#38597#40657
      Font.Style = []
      ParentFont = False
    end
    object SpeedButton2: TSpeedButton
      Left = 122
      Top = 7
      Width = 100
      Height = 32
      Action = Action_StopServer
      Flat = True
      Font.Charset = ANSI_CHARSET
      Font.Color = clBlue
      Font.Height = -15
      Font.Name = #24494#36719#38597#40657
      Font.Style = []
      ParentFont = False
    end
    object SpeedButton4: TSpeedButton
      Left = 534
      Top = 7
      Width = 100
      Height = 32
      Action = Action_ping
      Anchors = [akTop, akRight]
      Flat = True
      Font.Charset = ANSI_CHARSET
      Font.Color = clBlue
      Font.Height = -15
      Font.Name = #24494#36719#38597#40657
      Font.Style = []
      ParentFont = False
      ExplicitLeft = 396
    end
    object SpeedButton6: TSpeedButton
      Left = 648
      Top = 7
      Width = 100
      Height = 32
      Action = Action_DisconnectAll
      Anchors = [akTop, akRight]
      Flat = True
      Font.Charset = ANSI_CHARSET
      Font.Color = clBlue
      Font.Height = -15
      Font.Name = #24494#36719#38597#40657
      Font.Style = []
      ParentFont = False
      ExplicitLeft = 510
    end
    object SpeedButton8: TSpeedButton
      Left = 746
      Top = 7
      Width = 100
      Height = 32
      Action = Action_OpenIE
      Anchors = [akTop, akRight]
      Flat = True
      Font.Charset = ANSI_CHARSET
      Font.Color = clBlue
      Font.Height = -15
      Font.Name = #24494#36719#38597#40657
      Font.Style = []
      ParentFont = False
      ExplicitLeft = 608
    end
  end
  object Panel_Client: TPanel
    Left = 0
    Top = 49
    Width = 856
    Height = 496
    Align = alClient
    BevelOuter = bvNone
    TabOrder = 1
    ExplicitWidth = 718
    ExplicitHeight = 354
    object Splitter1: TSplitter
      Left = 249
      Top = 0
      Height = 496
      ExplicitLeft = 272
      ExplicitTop = 64
      ExplicitHeight = 100
    end
    object Panel_Connections: TPanel
      Left = 0
      Top = 0
      Width = 249
      Height = 496
      Align = alLeft
      BevelOuter = bvLowered
      TabOrder = 0
      ExplicitHeight = 354
      object Label_HandShakeTimeout: TLabel
        Left = 9
        Top = 48
        Width = 145
        Height = 17
        Hint = #25569#25163#36229#26102#26102#38388#65292#33258#20174#25509#25910#21040#23458#25143#31471#30340#25569#25163#20449#24687#24320#22987#21040#20840#37096#25910#21040#27491#30830#30340#25569#25163#20449#24687#20043#38388#30340#26102#38388#12290
        Caption = 'HandShakeTimeOut'#65288's'#65289
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
      end
      object Label_WebPort: TLabel
        Left = 9
        Top = 84
        Width = 59
        Height = 20
        Hint = 'WebSocket '#30340#31471#21475#65292#40664#35748#26159' 80'#65292#21487#20197#35774#32622#21512#36866#30340#20854#23427#20540#12290
        Caption = 'WebPort'
        Font.Charset = ANSI_CHARSET
        Font.Color = clRed
        Font.Height = -14
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
      end
      object Label_Interval: TLabel
        Left = 9
        Top = 121
        Width = 84
        Height = 20
        Hint = #30456#37051#20004#20010'ping'#20043#38388#30340#26102#38388#38388#38548#65292#36825#20010#21442#25968#20027#35201#26159#24403#21551#21160' HeartBeat'#21518#26377#25928#12290
        Caption = 'Interval'#65288's'#65289
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -14
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
      end
      object Label_MaxConnections: TLabel
        Left = 9
        Top = 157
        Width = 113
        Height = 20
        Caption = 'MaxConnections'
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -14
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
      end
      object Label_PingTimeout: TLabel
        Left = 9
        Top = 194
        Width = 121
        Height = 20
        Hint = #20174#26381#21153#22120#21457#20986'ping'#21629#20196#21040#25910#21040'pong'#22238#22797#20043#38388#30340#26102#38388#38388#38548#65292#36229#36807#36825#20010#26102#38388#35748#20026'ping'#22833#36133#65292#26029#24320#23458#25143#31471#65292#21333#20301#65306#31186
        Caption = 'PingTimeout'#65288's'#65289
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -14
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
      end
      object Label_ReadTimeout: TLabel
        Left = 9
        Top = 231
        Width = 128
        Height = 20
        Hint = #20027#35201#26159#20026#20102#20943#23569#32447#31243#36807#22810#21344#29992'CPU'#65292#40664#35748#26159'10'#65292#22914#26524#35774#32622#20026'0'#65292#21017#20250#21344#25454#36807#22810'CPU'#26102#38388
        Caption = 'ReadTimeout'#65288'ms)'
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -14
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
      end
      object Image1: TImage
        Left = 65
        Top = 344
        Width = 100
        Height = 95
        AutoSize = True
        Picture.Data = {
          0B546478504E47496D61676589504E470D0A1A0A0000000D4948445200000064
          0000005F08060000001E5F623A000000017352474200AECE1CE9000000046741
          4D410000B18F0BFC6105000000097048597300000B1300000B1301009A9C1800
          00000774494D4507E3030D07211FED166F120000191949444154785EED5D0978
          1445DA9E04C20D724310C87D4EEEFB4E26997B92903B841C10424020814410E4
          C605C32187E4240142B85104143C70E55C515157457E915F59775757D65DA727
          0901E492F8BFD574F7F62495C35DF33F1B98F779DE27D3D5DF57DDFDBD55F555
          75F74C2426986082092698608244727BD72A8BFAEC405F26DE3193513FF92CA3
          B3D9AC9759D4E823FBD4EA23CDB733CA21158624D755F59343A26FEF583E8273
          33E1B744437EF42826CEA190518E7A472F1B705D1F2EF9C588517D9A18F5B8A3
          B0996A98E42DBDBD6D692FCED584DF12F559018E8C66EC4E7DA4C5ED56221046
          0FBCC2C43BCC682C4A1CC4B998D015689CABEDCDC4DAAED247F6A60B211B6060
          E2EDF36FACC9EFC9B998D055A89F2A1BC32846BC4F1502C4BE3FD4E7048DE5CC
          4DE84AD4E7C558E963865FA50941C868AC8E363E1DDF973337E1B7C6CDDFE598
          5D9F9FE84C3E3714C40ED2C70CF99C2604217AC6E9EB4BB2FAB08E1CFCD3B679
          5AC756564766ED18C61599F0EFE2C692248921C17171FD34D9F83B2F6F942079
          EFA609C15236E0C7FA6951969CAB2471C67E33A709558B7B2A4AEF49E4A5BF8C
          D4947F21CFA91BC7ED36E1D7A269BEDA8CD18D5BCD68ADAAC8B621D94D8DC037
          B712822393E092C73A024FAF7CADA75D5C652D84682662F01CA22ABFEA91546D
          C39999F06BC0682C4BF411E6F7EBB3835D6E95CEED81A1EA539A102CE523AE36
          AD9A6141FC4E9DFB8B0443D426B110620E52957D1F96B9DD933D88091DA321DF
          D78C518F5C8B403733AA316F923243B254D54A041119EDF885AC33E03CA16A92
          99BCF4014D0C9E4FA8CAF49E4935819C8B096DA171E964334639643D82CC0E4D
          8644E764528E15F611B100C6347B509F1FCD0E43A9B3F60F18AC2AFB074D8496
          ECA5286BF449A98E217E2650D0B4658939A3B67C5108B4AC5FC3F5C5997DAF2F
          CFEDAF8FEA7DC358847F1133AB3FFDB465AE19A903493C8316FCB6D84F5976DB
          3BB926913D0113FE85A617179A2379971B055A3DF600D96748F78E1197B72486
          B5A36C25001279392DF0ED11B3B0BB8EF155595C1526DC796B9739A3B3A96E15
          E838876CB21FFB7ED7729F988C66CC3AB6226094A6FC0C2DE81D91E41CEFE4EA
          B9054B4F70353DA668DA30AF07136BB79D16E8FAA9E1F6C486515ABE4CDBCF93
          49F498CB560658C756FC2F2DE0BD1565BF0C53971B68FB78429466CCCE96AC2D
          7B871DFE1E3BDC79B51262D8D75283AC18C9DC7BF71536307AF9F04F68360265
          66B96C85C0385DC59F68C126F44AAE29C63AA4CDFD3C1D27546DDE58F5BE3957
          E5E3811BEB0B7B428C3A6A804108728E33C50CEBC97FD26C04464A0441D0C2A9
          3D84F0496DC59BD1D93BC763C5FE156DBF98D6BACA6D5159758FC75DE29B9B8A
          7A323AFB5DD4E0F2948F6013FACF573F31D34748EE516D3832C9DE456CC500A6
          BCEFD1024CD84B517A2F61FADE31BA69BB2C47A8CB2FD16CC484802FE7CE7FE5
          D1BE4979A3648605A3B3DB4B0BAC988C7A540DB1BF77667F5FDA7E3199D8F1CF
          B3950398F6BE4C0B2E4FDBB8CA4262173471DB708877816623E6586DC5DBCA29
          BB07B0953F6AB8BE28DD82D15AEFA305D588517D9B0C938264C4E7EEB18A0154
          1B11198DD51EF600005AF50BB4C0F2448E39CB994AC226D50E1EADA9384FB313
          73A8AAFC9C36AF6E28E7F668E0C6CA2C0B4633EE202DA0468CEAF32393E422DC
          D2B8FFFEAB16287FD0CA4E4CC5C8939CB9043DA09816549EE4CE6F5CFE1EE1A5
          86A4A7F60F422FE870AA3C5A537E3126A74EB893DCAD71BD50D50B8BB797A8C1
          14337AF0DFEB33FCDC3937014CCCC026AA3DCF98A15FDF7D631B6BEB3CA12A9E
          165031DD93B6A6B0C61CB28B5FEA3F5657F106CD564CCCD0AE60AD329E73EB9E
          B8B9368F2CEC7652032966F4C0BFD4E7CA9C38372330CA27BFA2FAF094F5BFDD
          54329B7D83243463871B2D98628ED1563C544F04756E5D6F24FA43347B3187AA
          CBBE8BC8DC21E5DCBA1F0CA95E1A04ADCD67182C65031A0D39618E9C4B2B302A
          CB73543F111BA6CB58FF559BCFF6B15094DEA50593A7A5A6FCCB176B2EB0758B
          3161C67E0B2B5DE55E9A8F98E4E66544666DF71485518FEBB07730CA51A59C39
          1518EEDA7E4AC8D190244DE2CC4962BF4C0B244FE491FBB9F30E3FC1991B61DA
          33477B42947D343F3187ABCB2FEBF2F774BF2931A3B1394C0BA0988C66FC4ACE
          9C0AEC5F4EF31313368B397322C8615A10C594266E9573E6AD905678A0DF2055
          D9559A9F9898620B4F28BB0D98589B05B4001A513EF4B3C6A5996DBE456848F6
          48A6FA89885E54C7994BD0C24B680114D38E5B8FB485F1BA8AF5343F316D622B
          7670E6DD070D33D583F5B27EDFD382282613EB50FED39E12EAFDA386BCA8B1B0
          69370F31AA2785A4204DD89A4D0BA0980878BBC324A6B9D5343F316D622BCB38
          F3EE0543BA77B03EAA77EB776D5B90897328BFB93EBF07E726E0D69662734C6D
          AFD17C04CAFADFBC7D70037BEF293C7387072D8062DAC6561E632BA74096BDD3
          7180B2EC3ACD4FC4669F949A68CEA5FBC190E615AC973DC150832922A3B6DC76
          BD30A2D54D3DCCB40ED1ECC5AC9F1AC13EC69D58707010B96F4509A240CCB43E
          622B6E01F9E49DF64355651DDE11C690B7FDFD8FBEE7BCBA290C99C15EE829ED
          B77490510CDBDBB822CF28A730139CF269B6621A125DD916FB62CD87E6435465
          D76881E489D5F935B6621102D2B6BB75E447881C753073CE2B8FC69BF3F5696E
          F6187EBEA105544CCC9A5E6B5C36599856D6E7C9ECC8CB0C345B9E58804EE3CC
          25E801EDDE38ECA128BD75F90AC3594B24DE29D57EFD941DBF1C81A1EEC09479
          47D8D78D1E19D4E72BC6EB63865DA605554CAC61DE6C9C1BDB8F7393308A9117
          69763C9978FBD59C2979B6DEEEAADB5C5EFAF39977FFCA0E8D81E9DBA290331A
          697662A2CE7D452BDE78B4C4E06148771DC6C8877E480BAC988C62F8C9FA4C8F
          81C487D15AAFA4D9F064B436BBD9CA8131DA8A0DB4A0F2349397DE3D7FE13B76
          5687455E87AB7388B177E6E2571F4D317834CE8D7F02D3D5B3B4E01A317AE0BB
          F5333543EAA7843AB53B6C45F7FF3D57B5C42BB97A092DB03CFB925914070C6F
          C769363CEDE22B77976EFBA0D5ECEF91447D416C3F463EE42835C022328AD19F
          3614C48D6494961768FB0919B5D51FB96AC9C2AE90165C9EC8057FE64CC99B2A
          1FD16C08EDE32B7714AD3CFE787DE1E7C6C2945E8CCEB6E307578A519F1B925C
          1753F7818CC6FA1257A504B3A559B400F31CA62E671F541D3872D91C9FA9F903
          6254BF5079F6F1E8192D7163F3821E58839017E5DA5F912B46FCA88F30A3EF53
          5B7FC25527F14CAA5E440B32CF71BA87B73DB00894D2F6DBC655562E5DF7E6E3
          29068FEB45D1664CBCC36A04B7FDDBF56D109304E12D37AC3336D202CD13019F
          4FEC1CE3ABA6B7DC67155B51F66CC9EB8FD76B406DE1EEB10A0993E0B2B0A335
          078D18F65EE4AA2182BCD932D0627A245587103B2B5D85787ADC3C5A53BE6951
          C9EB8FE78B726DE1E76B57254C9CCD347DA4C57D5AE0DB2256EAEC339105AB4F
          90BCF03751A08D3850596698BFEA44AFF4820303FA2BCB6E70E5CD969A8AF591
          D975A69ED1160C69BE19FAC89E7769C16FC5E8C13F341468FB133FF9E43A4712
          605E8096C40C6C1FB1734FAC4EE7CA9A9153D6AA738597574C680B4CBCADBABD
          AF223CA4D903F48E4CCE4562155BB94C2C400B36FBA5D6442E5B7706EB8F8A93
          649B3C3F499C71C0344C751686897E117AD9C046BA18C81DDAF19B6EEDD9C4DA
          162D7FBDD70875F9372D4410385253FEC18A0DA7CD233277B899CB4BEFDBC755
          ADCE283C6412E3D7C290E6E5839EF2778A187B1A574E13166E2E0955F9342108
          C9570E7C536BD86F4C6188AA7188AB5A9537FFB8498C7F17F5193ECEFA98A1DF
          B26244F4F89989B35BD158A810927064D64E4B246C3D4D0C42EBD84A76ED1199
          556B8359D6E282A5274C62FCA7A8CF8BB166B456FB0DA99E015C118B294F1FE9
          8D9C708A2604E15055F967894FED65DFD1CD2A3AE4B2A8E434EB674217203EFF
          401FB4FE36DF3419AE2EFF9332D7F48301FF2F88C8ACB51CA5293F4D1382100B
          BDF76539B563387313BA0A53E71FEDE19AB0356790AAEC9F34217A294AEFD8C7
          553E1F9FBFCFE8774F4CF88D913BFF705F17088195F86734212C14A5F7AC622B
          76874DDAE17CE193568FCD4DF84FB1AEEC7C8FC8CCDAF16E89D51998AAEE1BA0
          2C635A8AD05759766B8CB6E25DC7F8AA22ACD24DBF91D51558B9F1CCA8D08CED
          3AF7C4EA35E80D7510E2D03075D991DECAB2FDB6B1953510603504C8474FF0CF
          2E3AD4FFCAD706CED304134C30C104134CA0E2BDF3E7251A95C231C0CF7BA1A7
          BB6B6D809FCF517C7EAD2D2AE4D1F3385701599919437DBCDC73E1BF0536AFB4
          F4214C4E4A607F53B12542830313FE65E773383525897D478B40298F991BE8EF
          7BA4B38C8A08677F998EE0F8B1D71E5E97AF77B1BBD4796BA07FEBEB0A0B09DA
          CB990BC8CC9838D4DFC72BD7D38DBD96432D7D0871CEB61F7FFC912424286007
          5F565830ABD5EF3DC66A35EEFCFE90207FE125BF76111CE8FF94A39DD55D7B9B
          71BF7486B0671FFE10943CBFDA0C2755E8EC60D348B31553AD5204736E02E6CE
          29B4707371BC22B60BF4F3117E240075EF15EFEB88BE5E1EECAB3F395999FDBD
          3DDD763AD88EFF9966C7D3CDD54978D774D7AE3A338837C7C9C1E63ACD564C17
          075B2F0862267571F89E2FCB9F96F724579580A8883099E0E3687B8A2B6E1B89
          F171968EF6D6B77827A9B3C39F3DDD5CD04BBC2BDB227A88F0331741FEBEB3E1
          D7CCFBBBBB3A7DE2EBED51E9E3E5B1C1C7D3FD053127C4C5B6FA762B5A5A0AE7
          DBCC370A5767FBBF4D9F96C7AEBED14326A1E56FE60981B638DA59DFE38F8763
          D589F7CB22C39714CC7ACACCCB437A94B78128F73DA42E2770EE5B5A9E535080
          EF73EC8900FEBE5EE45A581F425CCB0588BA41EA6CBFC4CDD9C1885EEEAEA3BB
          4490D0E08034DE0181B8963529A3D33FD59D919E36083D83E1FD3164AD59BB86
          FE851C1A6AAAB79AE1A23F24BEE8255711B0B57C5D1832A85F253B75F2640F67
          47DB1BBC1D446CF5AD5E8822C73EB69138D85ADD8B8E8AD070BBDAC4C4B4D4C1
          CE0EB6422F87D09B9E5DB0A0DD6BE91241C2C3427279075727FBF7B9E24E213C
          246822EF0B610CD999937ED5172471B22AF8B281F3F3F12C8ED5AAC7F2BD840C
          634F17CD6DF59E6D670441CBDFC6EF474E7BE3DCD933DC9EB61114E0C7F7545C
          8BED4FB816EA1746C5E81A414283437907D2B531862E8DD569621226C4478A89
          56E73D393B6BC4BA356B84073E6845EB795F04F07BD4355B6058F02C81A12C67
          A6A5268FE65C256B4B4A241E6E2EA7882F02D0949A9C349C9423987BF83A319C
          A5B1C6227446100FA9F3057E3F04799B7A5E0FCF69167A0F3BFC7A7B48D7887C
          849FE6680F2D05418C96A2CE42318303FDB6F0FB3B25C8732B5798E304CEF04E
          ED9124485CECC7F2E8287FE28B5CB38366D716C5491D7504D8DB8C7F40CABD3D
          DCB673C5A43C08656CAF81C87FCCCB9D62F4666167044143F98EDFDF11F9A48E
          5C223404A98BE341B6A20ED052908ED829410826A6A50CC490B11289F0535CE0
          4D8CBB0F8CF9307042C54E76D766E44FEB0721054110A4DBC8015FB5C7A4C404
          6F72BCE3C78F499014F9A4FB204616E9757D69AE457D76B0EB732B969BA1E77C
          C0ED6B4697371AFF7FAD2068407ADAB9F0C4B4F743E2034184D91CEA6F3515A6
          A1A52038EE5F91FBBE111331BDC6EFEFB420629C3E75CA7CFBB69ABE559515FD
          78CE2B2E1A14161CA8C0ECE627BE728D4A1986245EC26F23C017B92A3A842246
          E6E26067759FF821F8E7C9306848768B67D463D8DFCF0A0D0A48E7EB452F3CF7
          F5D75FB17E049D1AB25027BF1F0DAD842B6E1708E62ADE070DAD5381EB921CD2
          595CBE7C59E2E6EA7889AF1C414B40EB224999DD461EB891939DD9A91FC2C7C5
          0B3D0B79229D9431EAB1AFE9A3FADF6A28D00D43AEEA8D09C6DF781B8CC5E1AC
          23D01941D02A37F1FB89382B962DEBF045079C87F85A6EA6262776782D5D2648
          6545B9457959692F1ACB4AB7F4C238DE17637B0CD62B420FD16A547E730A675B
          60BCBDCC97B94B9DDED669548E9B376DB4B872E54BAE7663A894722BF4347EBD
          F13D82DFA73E377CBC3EB227FB8B728CCEBA98D8614DF02C5F2F12FD7108C1FA
          7746109C9B33CA6F7336CD582BADC10C6EC42B875E6EF34D7708D04BEAE2F005
          5F2F7AC95B4A79B4E3A68D1B2C2E5EFC8CB3324697098216750E0BC21B6D1101
          2042088B3F9CC4674F4D7FF81F6D70401FF15A047C80D6DD84BC43C64E236AD4
          4A3F0C211BF199B5C590C72ECA189DED12E11D2CC5C8FFB9B3AFC43C7142DC48
          D4CB2E58490EC30CC68BD876461002F4DE59983408AB74D8DD7371B433E0B3D1
          39611DF405E722412EF347D0EA893DC7E6B6AE052B75B72E130407FD88776A8F
          38B1FB10EF045A8E35E7CA42258F71C48AF618F242BBB75F745A759C93BD4D13
          F98C5E722731217E6CD3CA1C0B7DCC90BFF282101AD2BC4249BDC84B3B795FD4
          BFBF76C7F64E0B42101116A241C02FC24E684C2D29BE754200511C30CCBD4616
          94347B9E5D76EB8400018E9445454C688B48C27198AF8761653EFAA5836CDEA5
          62D2C4F49191E121C12A855C4BAB07AB610FFEB312957EF9E565C9F58569030C
          A99E496032CF86693217525FC284B8B182BD3C465BF2FCF366E7CE9E35C3F0A9
          E3CB558A18E146240D1872CCB56AA50D7A589422263A96F713FC9572EA2A1ED7
          3202B92B08FBA9D782E33E0141C80445C197CD9FF774AB85715A4AF2707E3F8E
          CF3634134C30E1BF1E27DF79C72C313E766C72423CFBFD8EAE0286A75141017E
          3E339F7AF88F5FDAC30BEBD7F55DBBA66408B7C9E2D2A5CFC92D7F4FE49F56F9
          A05B222E56EBE92E75FEC6DFD7FB7705B3660A41397AF4485F92D89CECAD85EF
          78B404C66CB9D4D9BE21262AD2876C236D65FB7A799C3B7BE6345B0FD63EB57E
          DE9EECCA9A60CBE6CD3D4282FC3F006791ED952B969BE3D8273133FC11392A4A
          1E2D0B13334EA71DC53A72C0D4F6006874DF0A829861A2700B138AB55C51F746
          D19C4273ACEAE34283038A674CCB33434B7B26D0DFB70E0B2FF65E1102708E6C
          13CE7BBAD8E88E6A70A0BF86D8448406B3F7CA30455E4CB6CF9C3ED59B6C07F8
          791FF4903A1B2D7030FB5A8B99D49779537307F978BA95616AFB0FF81CA4110B
          5205E7269992933D10B3B586E0403FF606268E3D9F9C5350A0DF2ECC26C93DBB
          4BFC796AD52A5FD6A9BB212C245086005DE319111EBA11C17A07EB8D8FB1305B
          89A090873EBBBD3DDCD8E71E4573E708777FD353532CC3428374A41CB391E005
          CFCC27F7D75841AAAA2A872C5CF04C1F9A20B09562E1B846A35424E1F88730FB
          998A326D4BE2F8466FD207F87A2F466F7A2F24D03F4AEA64BFD5D5C9EE14A6BB
          5F60B89A891E7217E7F916045E408E8F46D53DFF19CCF4FC69FD72B2B36C72B2
          32FDC98504FAFB141341F0B7F6C891C3434899939D75AE8B939D2FF92C1684DC
          98C3D43495944747866722386FF382A895F202A48595344110C03A0C59CF92CF
          1E5297BD08A6012DFCA89818267F2001661D80C8F0502B94DDC4F19663683A85
          C673D8D1D6EA84AFB7E75B753B6B7B3B3BD8DEC171CA3D5C9DC792E3775B4178
          F8F9784D47607E4282B5248220981FA5A6242F231787DEB20749771D45906F51
          3E8994A39587B9B938FE80D5F673647BCAE4EC4004E80C4D101CAB180B2E7DC1
          EC59BD892068E9ECCF00CA2223CA424302D93C8061F24DB120B07123E7E5E9E6
          F225EA7F808087F282A424250CC7A2F0672C804F3D1282A424270EC6CAFF3B5C
          D0AB649B5C3844F846218F3E442E0E417B17DBC7C9675E90CF3FBF28C18AF747
          F4A44C3600C82108D6150C27FBC9366643A390A8FF811EF3524B4162B51A5B52
          3E2963A28FB787F418EC3E87F8CEC8591BA51015E7E3825E700E7E7FC0C25478
          27B878EE1CF272C5079834B0CF627841B0E80C26C774B2B769C4A4C2993D9FEE
          2AC8C494640B5C38FB9C0343C5FD207FDF5C2208122319B2869272F49CC92D87
          AC1DDBB7F5424B2F0C0EF29FC0060082F8FB784EC438BF8D6C1F7EE5505F04AE
          382A22FCF72D0559BA78717F1CE36DE4891292A43114FD84C670494CF244D2C9
          C1A6094313FB839698B59961B65686BACE2F5EF4EC6008359217048D62B99BAB
          13B91DF220D0CF67097B3EDD55106F77D75CB4FEED08BA1E177C1033AD4AB474
          3264ED5FBE6CA903B9381707DB9968BD24573CC02C4BF8C17C02946B894D5478
          A81FD9EECC2C4BAD5448890DF28ED3C321CB9EFD9DC5005FAFE7FC7DBD3690CF
          5EEED2B7C543565646FA609CE3CF683477C1DB08F8362208CEF31C7ACD554CBF
          E320CC7AF492065277F7ED216929FDF7EFDB47E6F1DF4190F5A40C017C1D177D
          0B65FC9DDB5B18A36F40B897B04E317A4E811C3283F42CCCB8D8F54267044159
          0E02771B43503FF4809DC827DFA267BA408CF9E8898D916121F6108A04FA8C4E
          AD64A7D9B0ED8189827D5A4AB2F5E49CECC1E47E171104E7F50BFC362E5DBCC8
          ACB060760FF4DA0DDD5A101E62417860C86A7761989991DE0741BB04A18497F0
          3A230886A41AB4FE4F77EFAA236B89106C7F8A19DA9FC58460B770DC5B8A18D9
          74E283DC608909C35C1C6B11A6CCE5B079810802DFF7D06B85577FBCDC5CC73D
          B28274B452478E3882609FCD9C3451B895D1912079B953C893C51FFC7DBC84FF
          BE23467454841F5AFC64CCAABE85CD4EAE98D4EB80F3DB8DA1EC45F4CAD931B2
          480F22888F97C71B9C097905D515138D7DE4F8D81FC615774F602CAE402B9CC4
          6DB28020BD109CFD0800F5E29037B2E61517B1B748782427268CD56A54411084
          1DDA428302A6FA797B2C637702E4D636CA66E8B46AEA173EB1CE48C0C4600384
          5C86D998D16D9396080EF0CB813DFB3F1509E2741A1BCCD88A9007935E7EE9A0
          E9BBEE269860820926FC974122F93F2CF2E1A1397332DD0000000049454E44AE
          426082}
      end
      object Panel1: TPanel
        Left = 1
        Top = 1
        Width = 247
        Height = 41
        Align = alTop
        BevelOuter = bvNone
        TabOrder = 0
        object Label1: TLabel
          Left = 0
          Top = 0
          Width = 247
          Height = 41
          Align = alClient
          Alignment = taCenter
          Caption = 'WebSocket '#21442#25968
          Layout = tlCenter
          ExplicitWidth = 118
          ExplicitHeight = 20
        end
      end
      object SpinEdit_HandShakeTimeout: TSpinEdit
        Left = 165
        Top = 44
        Width = 73
        Height = 27
        Hint = #25569#25163#36229#26102#26102#38388#65292#33258#20174#25509#25910#21040#23458#25143#31471#30340#25569#25163#20449#24687#24320#22987#21040#20840#37096#25910#21040#27491#30830#30340#25569#25163#20449#24687#20043#38388#30340#26102#38388#12290#13#10#36229#36807#36825#20010#26102#38388#65292#25569#25163#22833#36133#65281
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 1
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 1
        Value = 10
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object SpinEdit_WebPort: TSpinEdit
        Left = 165
        Top = 81
        Width = 73
        Height = 27
        Hint = 'WebSocket '#30340#31471#21475#65292#40664#35748#26159' 80'#65292#21487#20197#35774#32622#21512#36866#30340#20854#23427#20540#12290
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 80
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 2
        Value = 80
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object SpinEdit_Interval: TSpinEdit
        Left = 165
        Top = 118
        Width = 73
        Height = 27
        Hint = #30456#37051#20004#20010'ping'#20043#38388#30340#26102#38388#38388#38548#65292#36825#20010#21442#25968#20027#35201#26159#24403#21551#21160' HeartBeat'#21518#26377#25928#12290
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 1
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 3
        Value = 60
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object SpinEdit_MaxConnections: TSpinEdit
        Left = 165
        Top = 156
        Width = 73
        Height = 27
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 0
        ParentFont = False
        TabOrder = 4
        Value = 0
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object SpinEdit_PingTimeout: TSpinEdit
        Left = 165
        Top = 193
        Width = 73
        Height = 27
        Hint = #20174#26381#21153#22120#21457#20986'ping'#21629#20196#21040#25910#21040'pong'#22238#22797#20043#38388#30340#26102#38388#38388#38548#65292#36229#36807#36825#20010#26102#38388#35748#20026'ping'#22833#36133#65292#26029#24320#23458#25143#31471#65292#21333#20301#65306#31186
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 1
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 5
        Value = 10
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object SpinEdit_ReadTimeout: TSpinEdit
        Left = 165
        Top = 231
        Width = 73
        Height = 27
        Hint = #20027#35201#26159#20026#20102#20943#23569#32447#31243#36807#22810#21344#29992'CPU'#65292#40664#35748#26159'10'#65292#22914#26524#35774#32622#20026'0'#65292#21017#20250#21344#25454#36807#22810'CPU'#26102#38388#65292#21333#20301#65306#27627#31186
        Font.Charset = ANSI_CHARSET
        Font.Color = clWindowText
        Font.Height = -12
        Font.Name = #24494#36719#38597#40657
        Font.Style = []
        MaxValue = 1000000
        MinValue = 1
        ParentFont = False
        ParentShowHint = False
        ShowHint = True
        TabOrder = 6
        Value = 10
        OnChange = SpinEdit_HandShakeTimeoutChange
      end
      object CheckBox_HeartBeat: TCheckBox
        Left = 16
        Top = 280
        Width = 111
        Height = 17
        Hint = #26159#21542#21551#21160#24515#36339#26816#27979#65292#21551#21160#21518#23601#20250#23450#26102#21457#36865' ping'
        Caption = '  HeartBeat   '
        ParentShowHint = False
        ShowHint = True
        TabOrder = 7
        OnClick = SpinEdit_HandShakeTimeoutChange
      end
    end
    object Panel_Memo: TPanel
      Left = 252
      Top = 0
      Width = 604
      Height = 496
      Align = alClient
      BevelOuter = bvNone
      TabOrder = 1
      ExplicitWidth = 466
      ExplicitHeight = 354
      object Panel2: TPanel
        Left = 0
        Top = 0
        Width = 604
        Height = 89
        Align = alTop
        BevelOuter = bvLowered
        TabOrder = 0
        ExplicitWidth = 466
        DesignSize = (
          604
          89)
        object SpeedButton3: TSpeedButton
          Left = 22
          Top = 16
          Width = 81
          Height = 52
          Action = Action_Broadcast
          Flat = True
          Font.Charset = ANSI_CHARSET
          Font.Color = clBlue
          Font.Height = -15
          Font.Name = #24494#36719#38597#40657
          Font.Style = []
          ParentFont = False
        end
        object SpeedButton5: TSpeedButton
          Left = 123
          Top = 16
          Width = 81
          Height = 52
          Action = Action_WriteTexts
          Flat = True
          Font.Charset = ANSI_CHARSET
          Font.Color = clBlue
          Font.Height = -15
          Font.Name = #24494#36719#38597#40657
          Font.Style = []
          ParentFont = False
        end
        object Memo_Message: TMemo
          Left = 224
          Top = 16
          Width = 369
          Height = 57
          Anchors = [akLeft, akTop, akRight]
          Color = 16316664
          Font.Charset = ANSI_CHARSET
          Font.Color = clTeal
          Font.Height = -15
          Font.Name = 'Courier New'
          Font.Style = []
          Lines.Strings = (
            'Send_Message')
          ParentFont = False
          TabOrder = 0
          ExplicitWidth = 231
        end
      end
      object Panel3: TPanel
        Left = 0
        Top = 89
        Width = 225
        Height = 407
        Align = alLeft
        BevelOuter = bvNone
        TabOrder = 1
        ExplicitHeight = 265
        object Panel4: TPanel
          Left = 0
          Top = 0
          Width = 225
          Height = 41
          Align = alTop
          BevelOuter = bvNone
          TabOrder = 0
          object Label_Client: TLabel
            Left = 0
            Top = 0
            Width = 225
            Height = 41
            Align = alClient
            Alignment = taCenter
            Caption = #24403#21069#36830#25509#23458#25143#31471
            Layout = tlCenter
            ExplicitWidth = 105
            ExplicitHeight = 20
          end
        end
        object ListBox1: TListBox
          Left = 0
          Top = 41
          Width = 225
          Height = 366
          Align = alClient
          BorderStyle = bsNone
          ItemHeight = 20
          PopupMenu = PopupMenu1
          TabOrder = 1
          OnClick = ListBox1Click
          ExplicitHeight = 224
        end
      end
      object Panel5: TPanel
        Left = 225
        Top = 89
        Width = 379
        Height = 407
        Align = alClient
        BevelOuter = bvNone
        TabOrder = 2
        ExplicitWidth = 241
        ExplicitHeight = 265
        object Panel6: TPanel
          Left = 0
          Top = 0
          Width = 379
          Height = 41
          Align = alTop
          BevelOuter = bvNone
          Color = clCream
          ParentBackground = False
          TabOrder = 0
          ExplicitWidth = 241
          DesignSize = (
            379
            41)
          object Label_Message: TLabel
            Left = 0
            Top = 0
            Width = 68
            Height = 41
            Align = alLeft
            Alignment = taCenter
            Caption = '  '#28040#24687#31383#21475
            Layout = tlCenter
            ExplicitHeight = 20
          end
          object SpeedButton7: TSpeedButton
            Left = 296
            Top = 6
            Width = 73
            Height = 29
            Action = Action_Clear
            Anchors = [akTop, akRight]
            Flat = True
            Font.Charset = ANSI_CHARSET
            Font.Color = clBlue
            Font.Height = -15
            Font.Name = #24494#36719#38597#40657
            Font.Style = []
            ParentFont = False
            OnClick = SpeedButton7Click
            ExplicitLeft = 128
          end
        end
        object Memo_Log: TMemo
          Left = 0
          Top = 41
          Width = 379
          Height = 366
          Align = alClient
          Color = clInfoBk
          Font.Charset = ANSI_CHARSET
          Font.Color = clTeal
          Font.Height = -13
          Font.Name = 'Courier New'
          Font.Style = []
          Lines.Strings = (
            #35843#35797#20449#24687#26174#31034#21306#22495'....')
          ParentFont = False
          ReadOnly = True
          ScrollBars = ssBoth
          TabOrder = 1
          ExplicitWidth = 241
          ExplicitHeight = 224
        end
      end
    end
  end
  object WebSocket1: TWebSocket
    WebPort = 80
    Interval = 60
    HandShakeTimeout = 10
    PingTimeout = 10
    ReadTimeout = 10
    MaxConnections = 0
    OnStartup = WebSocket1Startup
    OnShutdown = WebSocket1Shutdown
    OnConnect = WebSocket1Connect
    OnDisConnect = WebSocket1DisConnect
    OnError = WebSocket1Error
    OnException = WebSocket1Exception
    OnHandShake = WebSocket1HandShake
    OnMessage = WebSocket1Message
    OnPong = WebSocket1Pong
    Left = 360
  end
  object ActionList1: TActionList
    Left = 272
    Top = 9
    object Action_StartServer: TAction
      Caption = #25171#24320#26381#21153
      OnExecute = Action_StartServerExecute
    end
    object Action_StopServer: TAction
      Caption = #20851#38381#26381#21153
      OnExecute = Action_StopServerExecute
    end
    object Action_WriteTexts: TAction
      Caption = #21457#36865#28040#24687
      OnExecute = Action_WriteTextsExecute
    end
    object Action_Broadcast: TAction
      Caption = #24191#25773#28040#24687
      OnExecute = Action_BroadcastExecute
    end
    object Action_ping: TAction
      Caption = 'Ping '#23458#25143#31471
      OnExecute = Action_pingExecute
    end
    object Action_DisconnectAll: TAction
      Caption = #26029#24320#20840#37096
      OnExecute = Action_DisconnectAllExecute
    end
    object Action_Clear: TAction
      Caption = #28165#38500
      OnExecute = Action_ClearExecute
    end
    object Action_OpenIE: TAction
      Caption = #35895#27468#27983#35272#22120
      OnExecute = Action_OpenIEExecute
    end
    object Action_ClientInfo: TAction
      Caption = #33719#21462#23458#25143#31471#20449#24687
      OnExecute = Action_ClientInfoExecute
    end
  end
  object Timer1: TTimer
    Enabled = False
    OnTimer = Timer1Timer
    Left = 292
    Top = 226
  end
  object PopupMenu1: TPopupMenu
    AutoHotkeys = maManual
    Left = 364
    Top = 226
    object N1: TMenuItem
      Action = Action_ClientInfo
    end
  end
end
